development projects software development fda open source java outsource consulting embedded software medical device software outsourcing software medical firmware project management medical device firmware management change management developers bpo